const {File} = require('@/mysql/file')
const send = require('koa-send')
/** 上传文件 */
const upLoadFile = async (ctx) => {
    const project_id = ctx.params.id
    let file = ctx.request.files;	// 获取上传文件
    if (!file) return global.toJSON(1, '没有检查到上传文件')
    file = file.file // 里面还有一个file对象才到详细信息
    const ext = file.path.split('_').pop();		// 获取上传文件扩展名
    const data = await File.insertData(file.name, ext, file.type, file.size, project_id)
    if (!data.length) ctx.body = global.toJson(0, '上传成功')
}
/** 上传图片 */
const upLoadImage = async (ctx) => {
    let file = ctx.request.files;	// 获取上传文件
    if (!file) return global.toJSON(1, '没有检查到上传文件')
    file = file.file // 里面还有一个file对象才到详细信息
    const ext = file.path.split('_').pop();		// 获取上传文件扩展名
    const data = await File.insertImage(file.name, ext, file.type, file.size)
    if (!data.length) ctx.body = global.toJson(0, data)
}
/** 获取当前上传文件所有数据 */
const getAllFile = async ctx => {
    const project_id = ctx.params.id
    ctx.body = await File.getAllFile(project_id)
}
const removeFile = async ctx => {
    const id = ctx.params.id
    await File.update({deleted: true}, {where: {id}})
    ctx.body = global.toJson(0, '删除文件成功')
}
const dowmLoad = async ctx => {
    // const name = ctx.params.name

    const id = ctx.params.id
    const data = await File.findOne({where: {id}})
    if(!data) ctx.body = "没有找到该文件呢"
    const fileName  = data.name
    const path = `static/upload/upload_${data.path}`
    ctx.attachment(path);
    ctx.attachment(fileName);
    await send(ctx, path);
}
export {upLoadFile, getAllFile, removeFile, upLoadImage, dowmLoad}
